import { request } from '@/utils/request'
import qs from 'qs'

//* --------------二维码登录申请url,密钥180秒超时----------------------
interface LoginKey {
  url: string //二维码url需要qrcode转换
  oauthKey: string //登录密钥，需要保存
}

export const reqLoginKey = () =>
  request<LoginKey>({
    method: 'GET',
    url: '/qrcode/getLoginUrl',
  })

//* --------------web端扫码登录----------------------

interface LoginSucess {
  url: string //跳转，默认是b站
  sid: string //中转服务器给前端代替cookie的用户凭据
}

export const reqLogin = (oauthKey: string) =>
  request<LoginSucess>({
    method: 'POST',
    url: '/qrcode/getLoginInfo',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' },
    data: qs.stringify({ oauthKey }),
  })

//* --------------------退出登录-----------------------
//服务器会注销该登录 Token（SESSDATA），在中转服务器中也需要处理
export const reqLogout = () =>
  request({
    method: 'POST',
    url: '/login/exit/v2',
  })

//* -------------------导航栏用户信息获取------------------------------

export interface UserBaseModel {
  isLogin: boolean //是否已登录
  face: string //用户头像url
  //等级信息
  level_info: {
    current_level: number //当前等级
    current_min: number //当前等级经验最低值
    current_exp: number //当前经验
    next_exp: number | string //1-5级为number 最大等级6级时值为"--"字符串
  }
  mid: number //用户mid
  money: number //硬币数目
  //b币钱包信息
  wallet: {
    mid: number
    bcoin_balance: number //拥有b币数目
  }
  moral: number //节操值
  uname: string //昵称
}

export const reqUserBase = () =>
  request<UserBaseModel>({
    url: '/web-interface/nav',
  })

//* --------------顶部bar个人头像展开信息中的几项(三个数字)----------------

export interface UserStartModel {
  dynamic_count: number //动态数
  follower: number //粉丝数
  following: number //关注数
}

export const reqUserStart = () =>
  request<UserStartModel>({
    url: '/web-interface/nav/stat',
  })
